package com.geostar.constructionland.attachment.util;

import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;

import java.io.File;

/**
 * @Description zip文件解压缩工具类
 */
public class UnZipUtils {
    /**
     * @param sourcePath 原始文件路径
     * @param destPath 解压路径
     * @param password 解压文件密码(可以为空)
     */
    public static void unZip(String sourcePath, String destPath, String password) throws ZipException {
        File zipFile = new File(sourcePath);
        ZipFile zFile = new ZipFile(zipFile);   // 首先创建ZipFile指向磁盘上的.zip文件
        zFile.setFileNameCharset("GBK");
        File destDir = new File(destPath);  // 解压目录
        if (!destDir.exists()) {    // 目标目录不存在时，创建该文件夹
            destDir.mkdirs();
        }
        if (zFile.isEncrypted()) {
            zFile.setPassword(password.toCharArray()); // 设置密码
        }
        zFile.extractAll(destPath); // 将文件抽出到解压目录(解压)
    }
}
